/*
 * create:2016年4月7日 上午7:50:22
 * author:wangds  
 */
package com.cxkj.shop.utils;

import java.util.TreeMap;

import net.wangds.common.GeneralParentObject;

/**
 * .
 * @author wangds
 *
 */ 
public class WxUnifiedOrderUtils {

  public static String unifiedOrderXml(String openId,String appId, String mchId,String ip, String tradeNo, String fee,String notifyUrl,String body,String detail, String attach){
    String nonce_str = WxSignUtils.getNonceStr();
    TreeMap<String,Object> map = new TreeMap<String,Object>();
    //System.out.println("ip:"+ip);
    int idx = ip.indexOf(",");
    if(idx>0){
      ip=ip.substring(0, idx);
    }
    GeneralParentObject.staticLogger(WxUnifiedOrderUtils.class).info("ip:"+ip);
    
    
    map.put("nonce_str", nonce_str);
    map.put("appid", appId);
    map.put("attach", attach);
    map.put("body", body);
    map.put("detail", detail);
    map.put("mch_id", mchId);
    map.put("device_info", "WEB");
    map.put("notify_url", notifyUrl);
    map.put("openid", openId);
    map.put("out_trade_no", tradeNo);
    map.put("spbill_create_ip", ip);
    map.put("total_fee", fee);
    map.put("trade_type", "JSAPI");
    
    String sign = WxSignUtils.createSign(map, "7M7ZitatWqJxwUnVFPetdiX0Ic5YqLIa");
    
    String returnXml = new StringBuilder().append("<xml>")
    .append("<appid>").append(appId).append("</appid>")
    .append("<attach>").append(attach).append("</attach>")
    .append("<body>").append(body).append("</body>")
    .append("<device_info>WEB</device_info>")
    .append("<detail>").append(detail).append("</detail>")
    .append("<mch_id>").append(mchId).append("</mch_id>")
    .append("<nonce_str>").append(nonce_str).append("</nonce_str>")
    .append("<notify_url>").append(notifyUrl).append("</notify_url>")
    .append("<openid>").append(openId).append("</openid>")
    .append("<out_trade_no>").append(tradeNo).append("</out_trade_no>")
    .append("<spbill_create_ip>").append(ip).append("</spbill_create_ip>")
    .append("<total_fee>").append(fee).append("</total_fee>")
    .append("<trade_type>JSAPI</trade_type>")
    .append("<sign>").append(sign).append("</sign>")
    .append("</xml>").toString();
    return returnXml;
}
}
